package com.town.garden.entiy;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;

/**
 * @Description 目标告警数组
 * @E-mail cwm3412638@163.com
 * @Author cwm
 * @Date 2022/5/13
 */
@Data
public class FaceAlarm implements Serializable {
    /**
     * 名单库与之匹配目标Id
     * -1表示陌生人，其他值表示名单库目标的唯一标识
     */
    @JsonProperty("Id")
    private Long id;
    /**
     * 匹配目标所属的组
     * -1表示未参与目标比对的目标
     */
    @JsonProperty("GrpId")
    private Long grpId;
    /**
     * 性别
     * 1：男， 2：女
     * 匹配到的名单库目标性别，Id字段不为-1时该字段才有效。
     */
    @JsonProperty("Sex")
    private Integer sex;
    /**
     * 年龄
     * 0~254
     * 匹配到的名单库目标年龄，Id字段不为-1时该字段才有效
     */
    @JsonProperty("Age")
    private Integer age;
    /**
     * 匹配目标的姓名
     */
    @JsonProperty("Name")
    private String name;
    /**
     * 匹配目标所在组的组名
     */
    @JsonProperty("GrpName")
    private String grpName;
    /**
     * 国籍
     */
    @JsonProperty("Country")
    private String country;

    /**
     * 籍贯
     */
    @JsonProperty("NativePlace")
    private String nativePlace;
    /**
     * 身份证
     */
    @JsonProperty("IdCode")
    private String idCode;
    /**
     * 工作
     */
    @JsonProperty("Job")
    private String job;
    /**
     * 电话
     */
    @JsonProperty("Phone")
    private String phone;
    /**
     * 邮件
     */
    @JsonProperty("Email")
    private String email;
    /**
     * 现居住地
     */
    @JsonProperty("Domicile")
    private String domicile;
    /**
     * 评价
     */
    @JsonProperty("Remark")
    private String remark;

    /**
     * 名单库与之匹配图片
     */
    @JsonProperty("MatchedImage")
    private String matchedImage;

    /**
     * 上述目标图片的特征值
     */
    @JsonProperty("MatchedFeature")
    private String matchedFeature;
    /**
     * 上述特征值的版本
     */
    @JsonProperty("MatchedFtVersion")
    private Integer matchedFtVersion;
    /**
     * 抓拍目标出现次数
     */
    @JsonProperty("AppearCnt")
    private Integer appearCnt;
    /**
     * 抓拍目标出现次数是否超过最大计数
     */
    @JsonProperty("OverMaxCount")
    private Boolean overMaxCount;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JsonProperty("StartTime")
    private Long startTime;
    /**
     * 抓拍时间，2018-10-25 13:08:36，Unix时间戳
     */
    @JsonProperty("EndTime")
    private Long endTime;
    /**
     * 与名单库中匹配的图片的相似度
     */
    @JsonProperty("Similarity")
    private Float similarity;
    /**
     * 前端IPC抓拍时图片的Id，32位无符号整型
     */
    @JsonProperty("SnapId")
    private Integer snapId;
    /**
     * 抓拍的通道
     */
    @JsonProperty("SnapChn")
    private Integer snapChn;
    /**
     * 抓拍目标图片
     */
    @JsonProperty("SnapFaceImg")
    private String snapFaceImg;

    /**
     * 抓拍背景图片
     */
    @JsonProperty("SnapBgImg")
    private String snapBgImg;
    /**
     * 抓拍目标整体图片
     */
    @JsonProperty("SnapBodyImg")
    private String snapBodyImg;

    /**
     * 抓拍的特征值
     */
    @JsonProperty("SnapFeature")
    private String snapFeature;

    /**
     * 抓拍特征值的版本
     */
    @JsonProperty("SnapFtVersion")
    private String snapFtVersion;

    /**
     * 属性检测出的年龄，摄像机给出的年龄有效范围为1~100
     */
    @JsonProperty("Gender")
    private Integer gender;
    /**
     * 表情
     * FE_Unknown = 0,
     * FE_Smile,
     * FE_Angry,
     * FE_Sad,
     * FE_Normal,
     * FE_Panic,
     * -1：不支持
     */
    @JsonProperty("Expression")
    private Integer expression;
    /**
     * 发型
     * HT_Unknown,
     * HT_LongHair,
     * HT_ShortHair
     * -1：不支持
     */
    @JsonProperty("Hair")
    private Integer hair;
    /**
     * 帽子
     * HS_Unknown,
     * HS_None,
     * HS_HatExist,
     * -1：不支持
     */
    @JsonProperty("Hat")
    private Integer hat;
    /**
     * 眼镜
     * GT_Unknown,
     * GT_None,
     * GT_NormalGlasses,
     * GT_Sunglasses
     * -1：不支持
     */
    @JsonProperty("GlassType")
    private Integer glassType;

    /**
     * 口罩
     * MM_Unkonwn,
     * MM_None,
     * MM_MaskExist,
     * -1：不支持
     */
    @JsonProperty("MouthMask")
    private Integer mouthMask;
    /**
     * 胡子
     * MT_Unknown,
     * MT_None,
     * MT_MustacheExist,
     * -1：不支持
     */
    @JsonProperty("Mustache")
    private Integer mustache;

    /**
     * 匹配的目标所在组的策略
     * 见 DLDetectPolicy 枚举
     * -1：不支持
     */
    @JsonProperty("Policy")
    private Integer policy;
    /**
     * 组是否开启目标告警
     */
    @JsonProperty("GrpEnableAlarm")
    private Boolean grpEnableAlarm;
    /**
     * 抓拍告警类型
     * 按位表示：
     * 第0位表示普通抓拍；
     * 第1位表示告警抓拍；
     * 第2位表示口罩告警抓拍；
     * 第3位表示陌生人高频告警抓拍；
     * 第4位表示名单库人员高频告警抓拍；
     */
    @JsonProperty("AlarmFlags")
    private Integer alarmFlags;
    /**
     * 抓拍目标位置
     */
    @JsonProperty("FaceRect")
    private FaceRect faceRect;
}
